package com.ict.ais.area.service.api.impl;


import org.springframework.stereotype.Service;

import com.ict.ais.area.facade.api.IAreaOpeService;
import com.ict.ais.area.facade.model.Area;
import com.ict.ais.area.service.dao.IAreaOpeDao;

import javax.annotation.Resource;
import java.util.List;

/**
 * Created by StevenH on 2016/12/15.
 */
@Service("areaOpeService")
public class AreaOpeService implements  IAreaOpeService {
    @Resource
    IAreaOpeDao dao;

    /**
     * 获取所有区域（停用，现在使用分页）
     * @param status 0：异常监控敏感区域；1：分发区域；2：其他区域（待定义） 255:全部区域
     * @return 区域列表
     *//*
    public List<Area> getAllArea(int status){
        try {
            //获取所有类型区域
            if(status==255){
                return dao.getAllAreasWithoutStatus();
            }
            return dao.getAllAreas(status);
        }catch (Exception e){
            System.out.println("获取所有区域失败"+e);
            return null;
        }
    }*/

    /**
     * 分页显示区域
     * @param status
     * @param pageid
     * @param pagecount
     * @return
     */
    public List<Area> getAreaPaging(int status,int pageid,int pagecount){
        try{
            return dao.getAllAreas(status,(pageid-1)*pagecount,pagecount);
        }catch (Exception e){
            System.out.println("获取所有区域失败"+e);
            return null;
        }
    }

    /**
     * 获取矩形（停用）
     * @param status 同上
     * @return 同上1
     *//*
    public List<Rectangle> getRectangles(int status){
        try {
            return dao.getRectangles(status);
        }catch (Exception e){
            System.out.println("获取矩形及多边形区域失败"+e);
            return null;
        }
    }

    *//**
     * 获取多边形区域（停用）
     * @param status 同上
     * @return 同上
     *//*
    public List<Polygon> getPolygons(int status){
        try {
            return dao.getPolygons(status);
        }catch (Exception e){
            System.out.println("获取矩形及多边形区域失败"+e);
            return null;
        }
    }

    *//**
     * 获取圆形区域（停用）
     * @param status 同上
     * @return 同上
     *//*
    public List<Circle> getCircles(int status){
        try {
            return dao.getCircles(status);
        }catch (Exception e){
            System.out.println("获取圆形区域失败"+e);
            return null;
        }
    }*/

    /**
     * 获取单一区域
     * @param id 区域id
     * @return 单一区域
     */
    public Area getArea(int id,int type){
        try {
            if(type==255){
                return dao.getArea(id);
            }else if(type==300){
                return dao.getAreaCustom(id);
            }
            return null;
        }catch (Exception e){
            System.out.println("获取单一区域失败"+e);
            return null;
        }
    }

    public int getAreaCount(int type){

        return dao.getAreaCount(type);
    }

    /**
     * 删除区域
     * @param id 区域id
     * @return
     */
    public boolean delArea(int id,int type){
        try {
            if(type==255){
                dao.delArea(id);
                return true;
            }else if(type==300){
                dao.delAreaCustom(id);
                return true;
            }
            return false;
        }catch (Exception e){
            System.out.println("删除区域失败"+e);
            return false;
        }
    }
}
